Technology today enables computing devices to connect with one another and transfer data back and forth. For example, an application on a first computing device can communicate with an application on a second computing device using varying forms of communication links, such as a Berkley socket connection. At times, these data transfers can be asynchronous in nature, which, in turn, can cause less efficient processing on the computing device. To address this, some computing devices employ Input/Output (IO) completion ports that can be directly coupled to one or more communication links and further manage data transfer associated with the communication link(s). While an IO completion port can be used to process communications faster and load a central processing unit (CPU) more effectively, the direct coupling between the IO completion port and the communication link(s) can sometimes further couple the communication link(s) and IO completion port to a same IO model, thus making the communication link(s) less transferable to other applications.